REM	UNRESOLVED CODE
REM	CALL COMMAND NEEDS TO LOAD TWO VARIABLE LOCATIONS, NOT JUST 1...ERRRRR





0 REM 'IDIOT COMPILER GEN3 - (c) NASPITE LABS 2018 - V1.79b
1 DIM CC$(200):DIM ZA$(200):LK=16:GOTO 40
5 PRINT CHR$(4);"PR#3":HOME
6 PRINT "   ** IDIOT COMPILER / APPLESOFT ASSEMBLER  (C)2018- NASPITE LABORATORIES **"

10 CALL 54915:PRINT : HTAB 40:X =  FRE (X): INPUT "------->   BASIC LINE #: ";A$:X = 0:IF LEN(A$)=0 GOTO 10

11  IF A$ = "HELP" OR A$ = "?HELP" OR A$ = "?" THEN  GOSUB 100: GOTO 10
12  IF A$ = "?COMMANDS" OR A$ = "COMMANDS" THEN  GOSUB 120: GOTO 10
13  IF A$ = "QUIT" OR A$ = "Q" OR A$ = "EXIT" OR A$="END" THEN PRINT:PRINT:END
14  IF A$ = "LINES" OR A$="LIST" THEN  GOSUB 130:GOTO 10
15  IF A$ = "RESET" THEN GOTO 200
16  IF A$ = "COMPILE" THEN  GOTO 30
17  IF A$=  "PARSER" THEN PRINT CHR$(4);"RUN EXPORT"
18  IF A$="DISK CLEAN" THEN PRINT CHR$(4);"RUN DISK CLEAN"
19  IF A$ = "DEL" OR A$="DELETE" THEN GOSUB 150:GOSUB 160:GOTO 10
20  IF A$="AUTO" GOTO 50
21  IF A$="VAR" THEN FD=1:GOTO 6010


25  ONERR  GOTO 29
26  ZA$="LINE."+A$
27  PRINT  CHR$ (4);"VERIFY";ZA$:PRINT  CHR$ (4);"DELETE";ZA$
29  ZA$ = "LINE." + A$: PRINT  CHR$ (4);"OPEN";ZA$: PRINT  CHR$ (4): PRINT  CHR$ (4);"CLOSE": GOTO 1000


REM------------ COMPILE PROGRAM
30  PRINT : PRINT:INPUT "      ***  COMPILE PROGRAM (Y/N): ";A$
31  IF A$ = "Y" OR A$ = "y" GOTO 35
32  PRINT : PRINT : GOTO 10
35  PRINT  CHR$ (4);"RUN COMPILER.1"


REM------------AUTO RESET
40 ON ERR GOTO 200
41 PRINT CHR$(4);"VERIFY VARIABLES":GOTO 5



REM--------AUTO TURN ON
50 PRINT "  1.   AUTO OFF"
51 PRINT "  2.   AUTO 08 BIT ON"
52 PRINT "  3.   AUTO 16 BIT ON"
53 PRINT "  4.   AUTO 24 BIT ON"
54 INPUT "(1-4):";A
55 IF A=1 THEN PRINT CHR$(4);"EXEC AUTO PATCH OFF"
56 IF A=2 THEN PRINT CHR$(4);"EXEC AUTO PATCH 8"
57 IF A=3 THEN PRINT CHR$(4);"EXEC AUTO PATCH 16"
58 IF A=4 THEN PRINT CHR$(4);"EXEC AUTO PATCH 24"
59 GOTO 10



REM------------- HELP
100  PRINT "iDIOT COMPILER HELP"
101  PRINT "  to see a LIST OF COMMANDS, type [ ?COMMANDS ]": PRINT 
102  PRINT "The COMPILER takes in BASIC commands and translates them into code similar to"
103  PRINT "what an assembly programmer would.   Although not fully featured, it can easily"
104  PRINT "create ASM for a host of BASIC code without headaches of knowing ASSEMBLY!": PRINT 
105  PRINT "     A.  Each subset of code is equivlent to a LINE in BASIC."
106  PRINT "         [ YOU MUST ENTER a BASIC LINE NUMBER when prompted ]": PRINT 
107  PRINT "     B.  At the [COMMAND] prompt, type in your BASIC command"
108  PRINT "         INSTRUCTION and press [ENTER].": PRINT 
109  PRINT " *** NOTE: Each COMMMAND or DATA ARGUMENT must be entered one at a time ***": PRINT 
110  PRINT "     POTENTIAL PROMPTS..."
111  PRINT "       - If you see (VAR OR #XX), this means you can enter a VARIABLE NAME,"
112  PRINT "         or a NUMBER or sometimes even an ADDRESS."
113  PRINT "       - You may also see prompts like (VAR      ) or (      #XX)"
114  PRINT "         VLIN (Y1,   AT  ) or VLIN (  ,Y2 AT  ) or VLIN (  ,   AT X)"
115  PRINT "         indicating where you are in your BASIC STATMENT, or potential"
116  PRINT "         input limitations at the time.  "
117  HTAB 50: PRINT "** PRESS ANY KEY **":YY = 0:POKE -16368,0
118  YY =  PEEK ( - 16384): IF YY < 128 GOTO 118
119  POKE  - 16368,0:PRINT:RETURN


REM-------------COMMAND LIST
120  PRINT : PRINT "[ ?COMMAND LIST ]": GOSUB 123:ON ERR GOTO 122
121  RESTORE : FOR A = 1 TO 50: READ A$: PRINT "  ";A$,:: NEXT 
122  PRINT:GOSUB 123:CALL -3288:GOTO 119
123  FOR A = 1 TO 80: PRINT "=";: NEXT :RETURN 
  

124  DATA *HELP*,*QUIT*,*LINES*,*RESET*,*COMPILE*,*DELETE*,*VAR*
125 DATA ASM,CALL,CANCEL,COLOR,DEC,DEC8,DEC,24,DOS,END,FLASH,FOR,GR,GOSUB
126 DATA GOTO,HLIN,HOME,HTAB,IF,IF8,INC,INC8,INC24,INVERSE
127 DATA LET,LET8,NORMAL,PDL,PEEK,PLOT,POKE,PRINT,PR#0,PR#3,RETURN
128 DATA RND,RUN,SCRN,TEXT,VLIN,VTAB,WAIT




REM ---------------- SEE CURRENT LINES (130-)
130 ONERR  GOTO 133
131 PRINT : PRINT "CURRENT LINES...": PRINT  CHR$ (4);"OPEN COMPILED.LINES"
132 PRINT  CHR$ (4);"READ COMPILED.LINES": INPUT A$: PRINT  CHR$ (4): PRINT "   ";A$: GOTO 132
133 CALL -3288:PRINT  CHR$ (4);"CLOSE":RETURN


REM---------------- DELETE LINE FROM TABLE
150 GOSUB 130:PRINT:INPUT "*** LINE TO DELETE: ";ZA$:IF LEN(ZA$)=0 THEN GOTO 10
151 ON ERR GOTO 154
152 A=1:PRINT CHR$(4);"OPEN COMPILED.LINES":PRINT CHR$(4);"READ COMPILED.LINES"
153 INPUT CC$(A):A=A+1:GOTO 153
154 PRINT CHR$(4);"CLOSE":ONERR GOTO 10
155 PRINT CHR$(4);"DELETE COMPILED.LINES":IF LEN(ZA$)<6 THEN ZA$="LINE."+ZA$
156 PRINT CHR$(4);"OPEN COMPILED.LINES":PRINT CHR$(4);"WRITE COMPILED.LINES"
157 FOR B=1 TO A-1:IF CC$(B)=ZA$ OR LEN(CC$(B))=0 THEN GOTO 159
158 PRINT CC$(B)
159 NEXT:PRINT CHR$(4);"CLOSE":PRINT "*** ";ZA$;" REMOVED!":CALL -3288:RETURN


REM---------------- DELETE ACTUAL LINE (ONLY FROM DEL IN MAIN)
160 ON ERR GOTO 163
161 PRINT CHR$(4);"DELETE";ZA$
162 RETURN
163 CALL -3288:RETURN


REM---------------- RESET (200-249)
200 PRINT : PRINT
201 INPUT "* RESET/DELETE ALL COMPILED LINES (Y/N)? ";A$
202 IF A$ = "Y" OR A$ = "y" GOTO 210
203 GOTO 10

210 ON ERR GOTO 215
211 PRINT  CHR$ (4);"OPEN COMPILED.LINES"
212 PRINT  CHR$ (4);"READ COMPILED.LINES": INPUT A$: PRINT  CHR$ (4)
213 IF  LEFT$ (A$,5) = "LINE." THEN X = X:PRINT  CHR$ (4);"DELETE";A$:PRINT "   ***  DELETING... ";A$
214 GOTO 212
215 IF  PEEK (222) = 10 OR PEEK(222)=6 THEN  GOTO 212
216 PRINT  CHR$ (4);"CLOSE": ONERR  GOTO 221

220  PRINT  CHR$ (4);"DELETE VARIABLES": PRINT "   ***  VARIABLE TABLE FLUSHED"
221  SD=0:I=30007:REM PRINT : INPUT "   ***  FOR/NEXT LOOP DEPTH: ";SD:I = 30007
222  PRINT  CHR$ (4);"OPEN VARIABLES"
223  SZ$ =  STR$ (SD) + " FORLOOPS": IF SD = 0 THEN I = 30007: GOTO 225
224  FOR A = 1 TO SD:I = I + 2: NEXT

225  PRINT  CHR$ (4);"WRITE VARIABLES": PRINT SZ$: PRINT I:PRINT  CHR$ (4);"CLOSE"

230  ONERR  GOTO 232
231  PRINT  CHR$ (4);"DELETE COMPILED.LINES"
232  PRINT  CHR$ (4);"OPEN COMPILED.LINES"
233  PRINT  CHR$ (4);"WRITE COMPILED.LINES":
234  PRINT "END":PRINT "LINE.0":PRINT "LINE.999"
235  PRINT  CHR$ (4);"CLOSE"

240  ONERR  GOTO 242
241  PRINT  CHR$ (4);"DELETE COMPILE.A"
242  ONERR  GOTO 244
243  PRINT  CHR$ (4);"DELETE COMPILE.B"
244  ONERR  GOTO 246
245  PRINT  CHR$ (4);"DELETE COMPILE.C"
246  ONERR  GOTO 248
247  PRINT  CHR$ (4);"DELETE PROGRAM.LISTING"
248  ONERR  GOTO 250
249  PRINT CHR$(4);"DELETE EXPORT.TMP"
250  ONERR GOTO 252
251  PRINT CHR$(4);"DELETE EXPORT.APP"
252  PRINT "   ***  COMPILER IS NOW RESET":PRINT CHR$(4);"RUN BOOT"


REM ------------------- CREATE CODE FOR LINE (APPEND)
REM 300 ADD COMMAND,KEEP GOING - 325 ADD COMMAND, END LINE
300 PRINT:GOSUB 301: GOTO 1000
301 PRINT  CHR$ (4);"APPEND";ZA$: PRINT  CHR$ (4);"WRITE";ZA$
302 FOR X = 1 TO A:PRINT CC$(X): NEXT:PRINT CHR$(4);"CLOSE"
303 FOR X = 1 TO A: HTAB 50: PRINT CC$(X): NEXT :RETURN


REM---------------------END LINE/CREATE CODE FOR LAST INSTRUCTION
325 IF A>0 THEN GOSUB 301
326 GOSUB 350:KP=LEN(ZA$):IF KP<9 THEN GOTO 330
327 A=A+1:CC$(A)="RTS":GOSUB 301

REM--------------------PRINT LISTING OF FINISHED LINE
330 A = 1:ZA$(1)="": ONERR  GOTO 333
331  PRINT  CHR$ (4);"OPEN";ZA$: PRINT  CHR$ (4);"READ";ZA$
332  INPUT ZA$(A):A = A + 1: GOTO 332

333  CALL -3288:PRINT  CHR$ (4);"CLOSE";ZA$
334  IF LEN(ZA$(1))=0 THEN A$="CANCEL":GOTO 1010
335  PRINT:PRINT ZA$: FOR B = 1 TO A-1: HTAB 5: PRINT ZA$(B): NEXT : GOTO 10


REM----------------ADD TO NEW COMPILED.LINES WITH CHECK FOR PRE-EXISTING
350  ONERR  GOTO 355
351  PRINT  CHR$ (4);"OPEN COMPILED.LINES"
352  PRINT  CHR$ (4);"READ COMPILED.LINES": INPUT GW$: PRINT  CHR$ (4)
353  IF GW$ = ZA$ THEN PRINT  CHR$ (4);"CLOSE COMPILED.LINES": RETURN 
354  GOTO 352

355  PRINT  CHR$ (4);"CLOSE COMPILED.LINES"
356  PRINT  CHR$ (4);"APPEND COMPILED.LINES"
357  PRINT  CHR$ (4);"WRITE COMPILED.LINES":PRINT ZA$
358  PRINT  CHR$ (4);"CLOSE COMPILED.LINES"
359  CALL -3288: RETURN


REM-------------------- NEW INPUT
400  T = 0:L =  LEN (SS$): IF L=0 THEN POP:GOTO 1000
401  V=VAL(SS$):IF SS$ = "0" THEN GOTO 403 
402  IF V = 0 THEN II$ = SS$: GOSUB 500: RETURN 
403  T=1:RETURN


REM---------------------READ VARIABLE FILES
500  ONERR  GOTO 510
501  PRINT  CHR$ (4);"OPEN VARIABLES"
502  PRINT  CHR$ (4);"READ VARIABLES"
503  INPUT IJ$:IF II$ = IJ$ GOTO 505
504  GOTO 502
505 INPUT IX:IY = IX + 1:IZ = IY + 1: PRINT  CHR$ (4);"CLOSE": RETURN

510 PRINT  CHR$ (4);"CLOSE"
511 PRINT : PRINT "**CREATED NEW VARIABLE: ";II$:II =  VAL (IJ$):II = II + 3
512 PRINT  CHR$ (4);"APPEND VARIABLES": PRINT  CHR$ (4);"WRITE VARIABLES"
513 PRINT II$: PRINT II: PRINT  CHR$ (4);"CLOSE":CALL  - 3288:GOTO 501


REM----------------INPUT FIXER/VALIDATOR
600 D=LEN(DJ$):IF D=0 THEN POP:GOTO 1000
601 D=VAL(DJ$):RETURN


REM----------------HEX CONVERSION
REM----------------TURN # INTO HEX DIGITS - INPUT H
700 HX(1) =  INT (H / 256):HX(2) = H - (HX(1) * 256): RETURN


REM---------------- COMMAND INPUT
1000 CALL 54915:A=FRE(X):A=0:A$="":PRINT:PRINT "(";ZA$;"): ";:INPUT "COMMAND: ";A$:IF LEN(A$)=0 GOTO 1000
1010 IF A$ = "HOME" THEN A = 1:CC$(A) = "JSR 64600": GOTO 300
1011 IF A$ = "TEXT" THEN A = 1:CC$(1) = "JSR 64313": GOTO 300
1012 IF A$ = "INVERSE" THEN A = 2:CC$(1) = "LDA #63":CC$(2) = "STA 50":PJ=PJ+1:GOTO 300
1013 IF A$ = "NORMAL" THEN A = 2:CC$(1) = "LDA #255":CC$(2) = "STA 50":PJ=PJ+1:GOTO 300
1014 IF A$ = "FLASH" THEN A = 2:CC$(1) = "LDA #127":CC$(2) = "STA 50":PJ=PJ+1: GOTO 300
1015 IF A$ = "GR" THEN A = 1:CC$(1) = "JSR 64320": GOTO 300
1016  IF A$ = "PR#0" THEN CC$(1) = "LDA #21":CC$(2)="JSR 49920":A = 2: GOTO 300
1017 IF A$ = "PR#3" THEN CC$(1) = "JSR 49920":CC$(2) = "JSR 64600":CC$(3) = "JSR 1002":A = 3: GOTO 300
1018 IF A$ = "END" GOTO 325
1019 IF A$ = "HELP" OR A$ = "?HELP" OR A$ = "?" THEN  GOSUB 100:GOTO 1000
1020 IF A$ = "CANCEL" THEN PRINT CHR$(4);"DELETE";ZA$:GOSUB 151:GOTO 10
1021 IF A$ = "?COMMANDS" OR A$ = "COMMANDS" THEN  GOSUB 120:GOTO 1000
1022 IF A$ = "RUN" THEN A = 1:CC$(1) = "JMP 30000":GOTO 325
1023 IF A$ = "RETURN" THEN A = 1:CC$(1) = "RTS":GOTO 325
1024 IF A$ = "CALL" THEN HTAB 20:INPUT "CALL ADR#: ";SS$:A=1:CC$(1)="JSR "+SS$:GOTO 300
1025 IF A$ = "LINES" THEN  GOSUB 130: GOTO 1000

1030 IF A$ = "GOSUB" GOTO 2000
1031 IF A$ = "GOTO" GOTO 2010
1032 IF A$ = "VTAB" GOTO 2020
1033 IF A$ = "HTAB" GOTO 2030
1034 IF A$ = "PEEK" GOTO 2040
1035 IF A$ = "POKE" GOTO 2050
1036  IF A$ = "COLOR" GOTO 2060
1037  IF A$ = "PLOT" GOTO 2070
1038  IF A$ = "SCRN" GOTO 2080
1039  IF A$ = "VLIN" GOTO 2090
1040  IF A$ = "HLIN" GOTO 2100
1041  IF A$ = "RND" GOTO 2110
1042  IF A$  ="DOS" GOTO 2120

1050  IF A$ = "PRINT" GOTO 3000

1052  IF A$ = "IF" GOTO 7925
1053  IF A$ = "LET" GOTO 7920
1054  IF A$ = "INC" GOTO 3440
1055  IF A$ = "DEC" GOTO 3450
1056  IF A$ = "LET8" GOTO 7900
1057  
1058  IF A$ = "PDL" OR A$="PADDLE" GOTO 5300
1059  IF A$ = "WAIT" GOTO 5310
1060  IF A$ = "ASM" GOTO 6000
1061  IF A$ = "VAR" GOTO 6010
1062  IF A$ = "LET24" GOTO 7910
1063  IF A$ = "INC8" GOTO 5130
1064  IF A$ = "DEC8" GOTO 5140
1065  IF A$ = "INC24" GOTO 7440
1066  IF A$ = "DEC24" GOTO 7450
1067  IF A$=  "SQR" GOTO 3460
1068  IF A$="LET16" GOTO 7905
1069  IF A$="NO RETURN" THEN GOSUB 350:GOTO 330
1070  IF A$="STEP" GOTO 8000
1071  IF A$="ON" GOTO 8100
1099 GOTO 1000




REM----------------*GOSUB
2000 CC$(1) = "COMMAND":CC$(2) = "GOSUB"
2001 HTAB 20: INPUT "GOSUB LINE #: ";CC$:CC$ = "LINE." + CC$
2002 CC$(3) = CC$:ZP$ = ZA$:ZA$ = CC$(3): GOSUB 350:ZA$ = ZP$:A = 3: GOTO 300


REM----------------*GOTO
2010 CC$(1) = "COMMAND":CC$(2) = "GOTO"
2011  HTAB 20: INPUT "GOTO LINE #: ";CC$:CC$ = "LINE." + CC$
2012  CC$(3) = CC$:ZP$ = ZA$:ZA$ = CC$(3): GOSUB 350:ZA$ = ZP$:A = 3:GOTO 325



REM----------------*VTAB  BETTER FIX V1.78e
2020  HTAB 20: INPUT "(VAR OR #XX)  VTAB: ";SS$:GOSUB 400
2021  IF T=1 THEN V=V-1:CC$ =  STR$ (V):CC$(1) = "LDA #" + CC$:CC$(2)="STA 37":CC$(3)="JSR 64546":A=3:GOTO 300
2022  CC$ =  STR$ (IX):CC$(1) = "LDX " + CC$:CC$(2)="DEX"
2025 CC$(3)="STX 37":CC$(4)="JSR 64546":A=4:GOTO 300


REM----------*HTAB V2
2030  HTAB 20: INPUT "(VAR OR #XX)  HTAB: ";SS$: GOSUB 400:CC$(2)="STX 36"
2031 IF T = 1 THEN V = V - 1:CC$ =  STR$ (V):CC$(1) = "LDX #" + CC$:A=2:GOTO 300
2032 A=3:CC$ =  STR$ (IX):CC$(1) = "LDX " + CC$:CC$(2)="DEX":CC$(3)="STX 36":GOTO 300


REM---------*PEEK V3
2040 HTAB 20: INPUT "(VAR       )   ___ =PEEK (YY)  : ";SY$
2041 HTAB 19: INPUT "*(VAR OR ADR)*  XX  =PEEK (__)  : ";SX$

2042 SS$ = SX$: GOSUB 400: IF T = 1 THEN X = X:CC$ =  STR$ (V):CC$(1) = "LDA " + CC$: GOTO 2047

2043 CC$ =  STR$ (IX):CC$(1) = "LDX " + CC$:CC$ =  STR$ (IY):CC$(2) = "LDY " + CC$
2044 CC$(3)="STX 113":CC$(4)="STY 114":CC$(5)="LDY #0":CC$(6)="LDA (71),Y"

2045 SS$ = SY$: GOSUB 400:C$ =  STR$ (IX):CC$(7) = "STA " + C$
2046 CC$ =  STR$ (IY):CC$(8) = "STY " + CC$:A = 8: GOTO 300

2047 SS$ = SY$: GOSUB 400:C$ =  STR$ (IX):CC$(2) = "STA " + C$
2048 CC$(3)="LDA #0":CC$=STR$(IY):CC$(4)="STA "+CC$:A=4:
2049 HTAB 20:INPUT "DOUBLE PEEK (Y?): ";Y$:GOTO 2068
2068 IF Y$="Y" THEN SX=VAL(SX$):SX=SX+1:CC$(3)="LDA "+STR$(SX)
2069 GOTO 300

REM----------------*POKE V3 08.11.18
2050  HTAB 20: INPUT "POKE TO ADR : ";SY$
2051  HTAB 20: INPUT "(VAR OR #XX): ";SX$

2052  SS$=SY$:GOSUB 400:IF T=1 THEN CC$=STR$(V):CC$(2)="STA "+CC$:GOTO 2058
2053  CC$=STR$(IX):CC$(1)="LDX "+CC$:CC$=STR$(IY):CC$(2)="LDY "+CC$
2054  CC$(3)="STX 113":CC$(4)="STY 114":CC$(5)="LDY #0":CC$(7)="STA (71),Y"
2055 SS$=SX$:GOSUB 400:IF T=1 THEN CC$=STR$(V):CC$(6)="LDA #"+CC$:GOTO 2057
2056 C$=STR$(IX):CC$(6)="LDA "+C$
2057 A=7:GOTO 300
2058 SS$ = SX$: GOSUB 400:IF T=1 THEN CC$=STR$(V):CC$(1)="LDA #"+CC$:A=2:GOTO 300
2059 C$ =  STR$ (IX):CC$(1) = "LDA " + C$:A=2:GOTO 300


REM----------------*COLOR
2060 HTAB 20: INPUT "(VAR OR #XX)  COLOR (0-15)#: ";SS$: GOSUB 400
2061 IF T = 1 THEN CC$ =  STR$ (V):CC$(1) = "LDA #" + CC$:GOTO 2065
2062 CC$ =  STR$ (IX):CC$(1) = "LDA " + CC$
2065 CC$(2) = "JSR 63588":A = 2: GOTO 300


REM----------------*PLOT
2070 HTAB 20: INPUT "(VAR OR #XX)  PLOT X: ";SX$
2071  HTAB 20: INPUT "(VAR OR #XX)  PLOT Y: ";SY$
2072 SS$ = SX$: GOSUB 400: IF T = 1 THEN X = X:CC$ =  STR$ (V):CC$(1) = "LDY #" + CC$: GOTO 2074
2073 CC$ =  STR$ (IX):CC$(1) = "LDY " + CC$
2074 SS$ = SY$: GOSUB 400: IF T = 1 THEN X = X:CC$ =  STR$ (V):CC$(2) = "LDA #" + CC$: GOTO 2076
2075 CC$ =  STR$ (IX):CC$(2) = "LDA " + CC$
2076 CC$(3) = "JSR 63488":A = 3: GOTO 300


REM----------------*SCRN
2080 HTAB 20: INPUT "     STORE INTO VARIABLE: ";SZ$
2081 HTAB 20: INPUT "(VAR OR #XX)  SCRN (X, ): ";SX$
2082  HTAB 20: INPUT "(VAR OR #XX)  SCRN ( ,Y): ";SY$
2083 SS$ = SX$: GOSUB 400: IF T = 1 THEN CC$ =  STR$ (V):CC$(1) = "LDY #" + CC$: GOTO 2085
2084 CC$ =  STR$ (IX):CC$(1) = "LDY " + CC$
2085 SS$ = SY$: GOSUB 400: IF T = 1 THEN CC$ =  STR$ (V):CC$(2) = "LDA #" + CC$: GOTO 2087
2086 CC$ =  STR$ (IX):CC$(2) = "LDA " + CC$
2087 SS$ = SZ$:IX = 0: GOSUB 400:DD$ =  STR$ (IX): IF  VAL (DD$) = 0 GOTO 1000
2088 CC$(3) = "JSR 63601":CC$(4) = "STA " + DD$:A = 4: GOTO 300


REM----------------*VLIN
2090 CC$(3) = "STA 45":CC$(5) = "JSR 63528":A = 5
2091  HTAB 20: INPUT "(VAR OR #XX)  VLIN (Y1,   AT  ): ";SX$
2092  HTAB 20: INPUT "(VAR OR #XX)  VLIN (  ,Y2 AT  ): ";SY$
2093  HTAB 20: INPUT "(VAR OR #XX)  VLIN (  ,   AT X): ";SZ$
2094 SS$ = SZ$: GOSUB 400: IF T = 1 THEN CC$ =  STR$ (V):CC$(1) = "LDY #" + CC$: GOTO 2096
2095 CC$ =  STR$ (IX):CC$(1) = "LDY " + CC$
2096 SS$ = SY$: GOSUB 400: IF T = 1 THEN CC$ =  STR$ (V):CC$(2) = "LDA #" + CC$: GOTO 2098
2097 CC$ =  STR$ (IX):CC$(2) = "LDA " + CC$
2098 SS$ = SX$: GOSUB 400: IF T = 1 THEN CC$ =  STR$ (V):CC$(4) = "LDA #" + CC$: GOTO 300
2099 CC$ =  STR$ (IX):CC$(4) = "LDA " + CC$: GOTO 300


REM----------------*HLIN
2100 CC$(3) = "STY 44":CC$(5) = "JSR 63513":A = 5
2101 HTAB 20: INPUT "(VAR OR #XX)  HLIN (X1,   AT  ): ";SX$
2102 HTAB 20: INPUT "(VAR OR #XX)  HLIN (  ,X2 AT  ): ";SY$
2103 HTAB 20: INPUT "(VAR OR #XX)  HLIN (  ,   AT Y): ";SZ$
2104 SS$ = SZ$: GOSUB 400: IF T = 1 THEN CC$ =  STR$ (V):CC$(1) = "LDA #" + CC$: GOTO 2106
2105 CC$ =  STR$ (IX):CC$(1) = "LDA " + CC$
2106 SS$ = SY$: GOSUB 400: IF T = 1 THEN CC$ =  STR$ (V):CC$(2) = "LDY #" + CC$: GOTO 2108
2107 CC$ =  STR$ (IX):CC$(2) = "LDY " + CC$
2108 SS$ = SX$: GOSUB 400: IF T = 1 THEN CC$ =  STR$ (V):CC$(4) = "LDY #" + CC$: GOTO 300
2109 CC$ =  STR$ (IX):CC$(4) = "LDY " + CC$: GOTO 300


REM----------------RND#
2110  PRINT : HTAB 18: PRINT "[ RANDOM NUMBER (8-BIT 0-255) ]"
2111  HTAB 20: INPUT "(VAR       )   X = RND [ - to - ] : ";SX$
2112  HTAB 20: INPUT "(VAR OR #XX)   - = RND [ 1 to Z ] : ";SY$
2113 SS$ = SX$: GOSUB 400:EE$ =  STR$ (IX):FF$ =  STR$ (IY):SS$ = SY$: GOSUB 400
2114 CC$(2) = "STA " + FF$:CC$(17) = "STX " + EE$: IF T = 1 GOTO 2116
2115 GG$ =  STR$ (IX):CC$(10) = "LDY " + GG$: GOTO 2117
2116 GG$ =  STR$ (V):CC$(10) = "LDY #" + GG$
2117 CC$(1) = "LDA #0":CC$(3) = "STA 171":CC$(4) = "STA 164":CC$(5) = "TAY":CC$(6) = "LDA #201":CC$(7) = "JSR 60153":CC$(8) = "JSR 61374"
2118 CC$(9) = "JSR 60259":CC$(11) = "DEY":CC$(12) = "JSR 58113":CC$(13) = "JSR 59778":CC$(14) = "JSR 59218":CC$(15) = "LDX 80":CC$(16) = "INX"
2119 PRINT : HTAB 44: PRINT "-->   ";SX$;" = RND ( 1 TO ";SY$;")   <--":A = 17: GOTO 300


REM----------------SIMPLE DOS/BLOAD/BRUN ECT
2120 A = 1: HTAB 20: PRINT "DOS COMMAND: ";:CALL -657:GOSUB 3015
2121 V =  LEN (V$): IF V = 0 GOTO 1000
2122 CC$(A) = "LDA #132":A = A + 1:CC$(A) = "JSR 65005":A = A + 1
2123 FOR U = 1 TO V:VV$ =  MID$ (V$,U,1):VV =  ASC (VV$):VV$ =  STR$ (VV)
2124 CC$(A) = "LDA #" + VV$:A = A + 1:CC$(A) = "JSR 65005":A = A + 1: NEXT 
2125 CC$(A) = "LDA #141":A = A + 1:CC$(A) = "JSR 65005":A = A + 1:
2126 CC$(A) = "PLA":A = A + 1:CC$(A) = "PLA": GOTO 300


REM----------------*PRINT v4
3000  PRINT : HTAB 10: PRINT "PRINT TO SCREEN..."
3001  HTAB 15: PRINT "1. STRING"
3002  HTAB 15: PRINT "2. VARIABLE"
3003  HTAB 10: INPUT "  (1-2): ";DJ$: GOSUB 600
3004 ON D GOTO 3010,3020:GOTO 1000

3010 A = 1: HTAB 20: PRINT "PRINT: ";:CALL -657:GOSUB 3015
3011 V =  LEN (V$): IF V = 0 GOTO 1000
3012 FOR U = 1 TO V:VV$ =  MID$ (V$,U,1):VV =  ASC (VV$):VV$ =  STR$ (VV)
3013 CC$(A) = "LDA #" + VV$:A = A + 1:CC$(A) = "JSR 65005":A = A + 1: NEXT 
3014 A=A-1:GOSUB 3030:GOTO 300
3015 V$="":FOR GX=512 TO 767:KP=PEEK(GX):IF KP<>141 THEN V$=V$+CHR$(KP):NEXT GX
3016 RETURN

3020 PRINT : HTAB 20: PRINT "(VAR       )  [ PRINT VALUE ]";: INPUT ": ";SS$
3021  GOSUB 400:EE$ =  STR$ (IX):FF$ =  STR$ (IY):GG$ =  STR$ (IZ)
3022 CC$(1) = "LDY " + GG$:CC$(2) = "LDX " + FF$:CC$(3) = "LDA " + EE$
3023 CC$(4) = "COMMAND":CC$(5) = "GOSUB":CC$(6) = "LINE.24BITPRINT"
3024 REM
3025 ZY$ = ZA$:ZA$ = CC$(6):GOSUB 350:ZA$ = ZY$:A = 6:GOSUB 3030:GOTO 300

3030 HTAB 20:INPUT "ENTER? (Y?): ";A$
3031 IF A$="Y" THEN A=A+1:CC$(A)="LDA #141":A=A+1:CC$(A)="JSR 65005"
3032 RETURN











REM----------------IF 16BIT SUBSTRUCTURE
3200  PRINT : HTAB 5: PRINT "IF SUBSTRUCTURE (*16BIT)
3201  HTAB 5: PRINT "  1.  IF A  =  B"
3202  HTAB 5: PRINT "  2.  IF A  >  B"
3203  HTAB 5: PRINT "  3.  IF A  <  B"
3204  HTAB 10: INPUT "  (1-3): ";DJ$: GOSUB 600:IF D>3 OR D<1 GOTO 1000

3205  PRINT :D$ = "=><":D$ =  MID$ (D$,D,1)
3206  HTAB 5: PRINT "(VAR       )  [ IF ___ ";D$;"   YY THEN...  ";: INPUT ": ";SF$
3207  HTAB 5: PRINT "(VAR OR #XX)  [ IF  XX ";D$;"  ___ THEN...  ";: INPUT ": ";SG$
3208  PRINT : HTAB 41: PRINT "-->   IF ";SF$;" ";D$;" ";SG$;"  THEN..."
3209  ON D GOTO 3210,3220,3230

3210 SS$ = SF$: GOSUB 400:EE$ =  STR$ (IX):FF$ =  STR$ (IY):SS$ = SG$: GOSUB 400: IF T = 1 GOTO 3212
3211 GG$ =  STR$ (IX):HH$ =  STR$ (IY):CC$(2) = "CMP " + HH$:CC$(5) = "CMP " + GG$:CC$(3) = "BNE +8": GOTO 3213
3212 H = V: GOSUB 700:GG$ =  STR$ (HX(2)):HH$ =  STR$ (HX(1)):CC$(2) = "CMP #" + HH$:CC$(5) = "CMP #" + GG$:CC$(3) = "BNE +7"
3213 CC$(1) = "LDA " + FF$:CC$(4) = "LDA " + EE$
3214 CC$(6) = "BEQ +3":CC$(7) = "COMMAND":CC$(8) = "NEXT":CC$(9) = ZA$:A = 9:GOTO 300


REM----------------16BIT IFS >
3220 SS$ = SF$: GOSUB 400:EE$ =  STR$ (IX):FF$ =  STR$ (IY):SS$ = SG$: GOSUB 400: IF T = 1 GOTO 3222
3221 GG$ =  STR$ (IX):HH$ =  STR$ (IY):CC$(2) = "CMP " + FF$:CC$(3) = "BNE +6":CC$(5) = "CMP " + EE$: GOTO 3223
3222 H = V: GOSUB 700:GG$ =  STR$ (HX(2)):HH$ =  STR$ (HX(1)):CC$(2) = "CMP " + FF$:CC$(3) = "BNE +5":CC$(5) = "CMP " + EE$
3223 BZ =  LEN (HH$): IF BZ > 4 THEN CC$(1) = "LDA " + HH$
3225 BZ =  LEN (GG$): IF BZ > 4 THEN CC$(4) = "LDA " + GG$: GOTO 3227
3226 CC$(1) = "LDA #" + HH$:CC$(4) = "LDA #" + GG$
3227 CC$(6) = "BCC +3":GOTO 3234


REM----------------16BIT IFS <
3230  SS$ = SF$: GOSUB 400:EE$ =  STR$ (IX):FF$ =  STR$ (IY):SS$ = SG$: GOSUB 400: IF T = 1 GOTO 3232
3231  GG$ =  STR$ (IX):HH$ =  STR$ (IY):CC$(2) = "CMP " + HH$:CC$(3) = "BNE +6":CC$(5) = "CMP " + GG$: GOTO 3233
3232 H = V: GOSUB 700:GG$ =  STR$ (HX(2)):HH$ =  STR$ (HX(1)):CC$(2) = "CMP #" + HH$:CC$(3) = "BNE +5":CC$(5) = "CMP #" + GG$
3233 CC$(1) = "LDA " + FF$:CC$(4) = "LDA " + EE$:CC$(6) = "BCC +3"
3234 CC$(7) = "COMMAND":CC$(8) = "NEXT":CC$(9) = ZA$:A = 9:GOTO 300




REM----------------LET 16BIT SUBSTRUCTURE
3300  PRINT:HTAB 5: PRINT "===== LET 16-BIT MATH EQUATIONS =========" 
3301  HTAB 5: PRINT "1. EQUALS           --[ A = B ]--"
3302  HTAB 5: PRINT "2. ADDITION        [ A =  B +  C ]"
3303  HTAB 5: PRINT "3. SUBTRACTION     [ A =  B -  C ]"
3304  HTAB 5: PRINT "4. MULTIPLICATION  [ A =  B *  C ]"
3305  HTAB 5: PRINT "5. DIVISION       *[ A =  B /  C ] (INT OUTPUT ONLY)
3306  HTAB 5: PRINT "6. SPECIAL   ** [ 16BIT QUICKIES ] **"
3307  HTAB 5: PRINT "7. PEEK      ** [  A =   PEEK(B) ] **"
3308  PRINT : HTAB 20: INPUT "  (1-7): ";DJ$: GOSUB 600
3309  PRINT : ON D GOTO 3310,3320,3340,3360,3380,3400,2040:GOTO 1000

3310  HTAB 20: PRINT "16 BIT EQUALS --[ A = B ]--"
3311  HTAB 20: INPUT "  (VAR       )  [ A =   ] : ";SX$
3312  HTAB 20: INPUT "  (VAR OR #XX)  [   = B ] : ";SY$
3313 SS$ = SX$: GOSUB 400:CC$ =  STR$ (IX):DD$ =  STR$ (IY):CC$(2) = "STA " + CC$
3314 CC$(4) = "STA " + DD$:SS$ = SY$: GOSUB 400: IF T = 1 GOTO 3316
3315 EE$ =  STR$ (IX):CC$(1) = "LDA " + EE$:FF$ =  STR$ (IY):CC$(3) = "LDA " + FF$: GOTO 3319
3316 H = V: GOSUB 700:EE$ =  STR$ (HX(2)):FF$ =  STR$ (HX(1)):CC$(1) = "LDA #" + EE$:CC$(3) = "LDA #" + FF$
3319 A = 4: PRINT : HTAB 44: PRINT "--> [ ";SX$;" = ";SY$;" ] <--": GOTO 300

3320  HTAB 20: PRINT "16-BIT ADDITION:   --[ A = B + C ]--"
3321  HTAB 27: INPUT "(VAR       )  [ A =   +   ] : ";SX$
3322  HTAB 27: INPUT "(VAR OR #XX)  [   = B +   ] : ";SY$
3323  HTAB 27: INPUT "(VAR OR #XX)  [   =   + C ] : ";SZ$
3324 SS$ = SX$: GOSUB 400:EE$ =  STR$ (IX):FF$ =  STR$ (IY):CC$(1) = "CLC":CC$(4) = "STA " + EE$
3325 CC$(7) = "STA " + FF$:SS$ = SY$: GOSUB 400: IF T = 1 GOTO 3327
3326 GG$ =  STR$ (IX):CC$(2) = "LDA " + GG$:HH$ =  STR$ (IY):CC$(5) = "LDA " + HH$: GOTO 3328
3327 H = V: GOSUB 700:GG$ =  STR$ (HX(2)):HH$ =  STR$ (HX(1)):CC$(2) = "LDA #" + GG$:CC$(5) = "LDA #" + HH$
3328 SS$ = SZ$: GOSUB 400: IF T = 1 GOTO 3330
3329 II$ =  STR$ (IX):CC$(3) = "ADC " + II$:JJ$ =  STR$ (IY):CC$(6) = "ADC " + JJ$: GOTO 3331
3330 H = V: GOSUB 700:II$ =  STR$ (HX(2)):JJ$ =  STR$ (HX(1)):CC$(3) = "ADC #" + II$:CC$(6) = "ADC #" + JJ$
3331 A = 7: PRINT : HTAB 44: PRINT "--> [ ";SX$;" = ";SY$;" + ";SZ$;" ] <--": GOTO 300

3340  HTAB 20: PRINT "16-BIT SUBTRACTION: --[ A = B - C ]--"
3341  HTAB 27: INPUT "(VAR       )   [ A =   -   ] : ";SX$
3342  HTAB 27: INPUT "(VAR OR #XX)   [   = B -   ] : ";SY$
3343  HTAB 27: INPUT "(VAR OR #XX)   [   =   - C ] : ";SZ$
3344 SS$ = SX$: GOSUB 400:EE$ =  STR$ (IX):FF$ =  STR$ (IY):CC$(1) = "SEC":CC$(4) = "STA " + EE$:CC$(7) = "STA " + FF$
3345 SS$ = SY$: GOSUB 400: IF T = 1 GOTO 3347
3346 GG$ =  STR$ (IX):CC$(2) = "LDA " + GG$:HH$ =  STR$ (IY):CC$(5) = "LDA " + HH$: GOTO 3348
3347 H = V: GOSUB 700:GG$ =  STR$ (HX(2)):HH$ =  STR$ (HX(1)):CC$(2) = "LDA #" + GG$:CC$(5) = "LDA #" + HH$
3348 SS$ = SZ$: GOSUB 400: IF T = 1 GOTO 3350
3349 II$ =  STR$ (IX):CC$(3) = "SBC " + II$:JJ$ =  STR$ (IY):CC$(6) = "SBC " + JJ$: GOTO 3351
3350 H = V: GOSUB 700:II$ =  STR$ (HX(2)):JJ$ =  STR$ (HX(1)):CC$(3) = "SBC #" + II$:CC$(6) = "SBC #" + JJ$
3351 A = 7: PRINT : HTAB 44: PRINT "--> [ ";SX$;" = ";SY$;" - ";SZ$;" ] <--": GOTO 300




3360  HTAB 20: PRINT "16-BIT MULTIPLICATION: --[ A = B * C ]--"
3361  HTAB 29: INPUT "(VAR       )    [ A =   *   ] : ";SX$
3362  HTAB 29: INPUT "(VAR OR #XX)    [   = B *   ] : ";SY$
3363  HTAB 29: INPUT "(VAR OR #XX)    [   =   * C ] : ";SZ$

3364 SS$ = SX$: GOSUB 400:EE$ =  STR$ (IX):FF$ =  STR$ (IY):PY$=STR$(IZ):SS$ = SY$: GOSUB 400
3365 IF T = 1 THEN H = V: GOSUB 700:GG$ =  STR$ (HX(2)):HH$ =  STR$ (HX(1)):CC$(1) = "LDX #" + GG$:CC$(2) = "LDY #" + HH$: GOTO 3367
3366 GG$ =  STR$ (IX):HH$ =  STR$ (IY):CC$(1) = "LDX " + GG$:CC$(2) = "LDY " + HH$
3367 CC$(3) = "STX 30003":CC$(4) = "STY 30004": SS$ = SZ$: GOSUB 400
3368 IF T = 1 THEN H = V: GOSUB 700:II$ =  STR$ (HX(2)):JJ$ =  STR$ (HX(1)):CC$(5) = "LDX #" + II$:CC$(6) = "LDY #" + JJ$: GOTO 3370
3369 II$ =  STR$ (IX):JJ$ =  STR$ (IY):CC$(5) = "LDX " + II$:CC$(6) = "LDY " + JJ$
3370 CC$(7) = "COMMAND":CC$(8) = "GOSUB":CC$(9) = "LINE.16BITMULT"

3371 CC$(10) = "STX " + EE$:CC$(11) = "STY " + FF$:ZY$ = ZA$:ZA$ = CC$(9): GOSUB 350:ZA$ = ZY$
3372 CC$(12)="STA "+PY$
3373 A = 12: PRINT : HTAB 44: PRINT "--> [ ";SX$;" = ";SY$;" * ";SZ$;" ] <--": GOTO 300






3380  HTAB 20: PRINT "16-BIT DIVISION:       --[ A = B / C ]--"
3381  HTAB 29: INPUT "(VAR       )    [ A =   /   ] : ";SX$
3382  HTAB 29: INPUT "(VAR OR #XX)    [   = B /   ] : ";SY$
3383  HTAB 29: INPUT "(VAR OR #XX)    [   =   / C ] : ";SZ$
3384 SS$=SX$:GOSUB 400:EE$=STR$(IX):FF$=STR$(IY):SS$=SY$:GOSUB 400
3385 IF T=1 THEN H=V:GOSUB 700:GG$=STR$(HX(2)):HH$=STR$(HX(1)):CC$(1)="LDX #"+GG$:CC$(2)="LDY #"+HH$:GOTO 3387
3386 GG$=STR$(IX):HH$=STR$(IY):CC$(1)="LDX "+GG$:CC$(2)="LDY "+HH$
3387 CC$(3) = "STX 30003":CC$(4) = "STY 30004":SS$ = SZ$: GOSUB 400
3388 IF T = 1 THEN H = V: GOSUB 700:II$ =  STR$ (HX(2)):JJ$ =  STR$ (HX(1)):CC$(5) = "LDX #" + II$:CC$(6) = "LDY #" + JJ$:GOTO 3390
3389 II$ =  STR$ (IX):JJ$ =  STR$ (IY):CC$(5) = "LDX " + II$:CC$(6) = "LDY " + JJ$
3390 CC$(7) = "COMMAND":CC$(8) = "GOSUB":CC$(9) = "LINE.16BITDIV"
3391 CC$(10) = "STX " + EE$:CC$(11) = "STY " + FF$
3392 ZY$ = ZA$:ZA$ = CC$(9): GOSUB 350:ZA$ = ZY$
3393 A=11:PRINT : HTAB 44: PRINT "--> [ ";SX$;" = ";SY$;" / ";SZ$;" ] <--":GOTO 300


REM----------------LET 16BIT QUICKIES
3400  HTAB 5: PRINT "(* 16BIT) QUICKIES...."
3401  HTAB 5: PRINT "  1.  INCREASE (VARIABLE + 1)"
3402  HTAB 5: PRINT "  2.  DECREASE (VARIABLE - 1)"
3403  HTAB 5: PRINT "  3.  MULTIPLY (VARIABLE * 2)"
3404  HTAB 5: PRINT "  4.  MULTIPLY (VARIABLE *10)"
3405  HTAB 5: PRINT "  5.  DIVIDE   (VARIABLE / 2)"
3406  HTAB 5: PRINT "  6.  SQUARE ROOT"
3407  PRINT : HTAB 15: INPUT "  (1-6): ";DJ$: GOSUB 600
3408   PRINT:ON D GOTO 3440,3450,3420,3430,3410,3460:GOTO 1000

REM---------------16BIT DIV*2
3410  HTAB 20: INPUT "  (VAR)  [ A = A / 2  ] : ";SX$
3411  SS$ = SX$: GOSUB 400:CC$ =  STR$ (IX):DD$ =  STR$ (IY)
3412 CC$(1) = "LSR " + DD$:CC$(2) = "ROR " + CC$:A = 2: GOTO 300

REM---------------16BIT MULT*2
3420 HTAB 20: INPUT "  (VAR)  [ A = A * 2  ] : ";SX$
3421 SS$ = SX$: GOSUB 400:CC$ =  STR$ (IX):DD$ =  STR$ (IY)
3422 CC$(1) = "ASL " + CC$:CC$(2) = "ROL " + DD$:A = 2: GOTO 300


REM-------------16BIT MULT*10
3430 HTAB 20: INPUT "  (VAR)  [ A = A * 10  ] : ";SX$
3431 SS$ = SX$: GOSUB 400:CC$ =  STR$ (IX):DD$ =  STR$ (IY)
3432 CC$(1) = "LDA " + DD$:CC$(2) = "PHA":CC$(3) = "LDA " + CC$:CC$(4) = "ASL " + CC$
3433 CC$(5) = "ROL " + DD$:CC$(6) = "ASL " + CC$:CC$(7) = "ROL " + DD$
3434 CC$(8) = "CLC":CC$(9) = "ADC " + CC$:CC$(10) = "STA " + CC$:CC$(11) = "PLA":CC$(12) = "ADC " + DD$
3435 CC$(13) = "STA " + DD$:CC$(14) = "ASL " + CC$:CC$(15) = "ROL " + DD$:A = 15: GOTO 300

REM------------16BIT INCREASE
3440  HTAB 20: PRINT "(VAR       )  [ INCREASE 16BIT VAR+1 ]";: INPUT ": ";SS$
3441  GOSUB 400:EE$ =  STR$ (IX):FF$ =  STR$ (IY)
3442  CC$(1) = "INC " + EE$:CC$(2) = "BNE 3":CC$(3) = "INC " + FF$:A = 3: GOTO 300

REM------------16BIT DECREASE
3450  HTAB 20: PRINT "(VAR       )  [ DECREASE 16 BIT VAR -1 ]";: INPUT ": ";SS$
3451  GOSUB 400:EE$ =  STR$ (IX):FF$ =  STR$ (IY)
3452  CC$(1) = "LDA " + EE$:CC$(2) = "BNE 3":CC$(3) = "DEC " + FF$:CC$(4) = "DEC " + EE$:A = 4: GOTO 300


REM-------------16BIT SQUARE ROOT
3460 HTAB 20:INPUT "(VAR     ):  [ ___ = SQR(x) ] : ";SX$
3461 HTAB 20:INPUT "(VAR OR #):  [  A  = SRQ( ) ] : ";SY$
3462 SS$=SX$:GOSUB 400:EE$=STR$(IX):FF$=STR$(IY):SS$=SY$:GOSUB 400
3463 IF T=1 THEN  H=V:GOSUB 700:GG$ =  STR$ (HX(2)):HH$ =  STR$ (HX(1)):CC$(1) = "LDX #" + HH$:CC$(2) = "LDY #"+GG$:GOTO 3465
3464 GG$ =  STR$ (IX):HH$ =  STR$ (IY):CC$(1) = "LDX " + HH$:CC$(2) = "LDY " + GG$
3465 CC$(3) = "COMMAND":CC$(4) = "GOSUB":CC$(5) = "LINE.16BITSQR":CC$(6) = "STA " + EE$:CC$(7) = "STX " + FF$
3466 ZY$ = ZA$:ZA$ = CC$(5): GOSUB 350:ZA$ = ZY$
3467 A=7:PRINT : HTAB 44: PRINT "--> [ ";SX$;" = SQR( ";SY$;" ) ] <--":GOTO 300



REM--------------------------------------END OF CODE




REM  1043  IF A$ = "HGR" GOTO 4200
REM  1044  IF A$ = "HCOLOR" GOTO 4210
REM 1045  IF A$ = "HPLOT" GOTO 4220




REM----------------LET = SUBSTRUCTURE (*8BIT)
5000  PRINT:HTAB 5: PRINT "===== LET 8-BIT MATH EQUATIONS =========" 
5001  HTAB 5: PRINT "1. EQUALS           --[ A = B ]--"
5002  HTAB 5: PRINT "2. ADDITION        [ A =  B +  C ]"
5003  HTAB 5: PRINT "3. SUBTRACTION     [ A =  B -  C ]"
5004  HTAB 5: PRINT "4. MULTIPLICATION  [ A =  B  * C ]  ( 16 BIT OUTPUT! )"
5005  HTAB 5: PRINT "5. DIVISION       *[ A =  B  / C ]  (INT OUTPUT ONLY!)"
5006  HTAB 5: PRINT "6. SPECIAL      ** [ 8 BIT QUICKIES ] **"
5007  PRINT : HTAB 20: INPUT "  (1-6): ";DJ$: GOSUB 600
5008  PRINT:ON D GOTO 5010,5020,5030,5040,5060,5100:GOTO 1000


5010  HTAB 20: PRINT "8 BIT EQUALS  --[ A = B ]--"
5011  HTAB 20: INPUT "  (VAR       )  [ A =   ] : ";SX$
5012  HTAB 20: INPUT "  (VAR OR #XX)  [   = B ] : ";SY$
5013 SS$ = SX$: GOSUB 400:CC$ =  STR$ (IX):CC$(2) = "STA " + CC$
5014 SS$ = SY$: GOSUB 400: IF T = 1 GOTO 5016
5015 DD$ =  STR$ (IX):CC$(1) = "LDA " + DD$:A = 2: GOTO 300
5016 DD$ =  STR$ (V):CC$(1) = "LDA #" + DD$:A = 2: GOTO 300


5020  HTAB 20: PRINT "8 BIT ADDITION--[ A = B + C ]--"
5021  HTAB 20: INPUT "  (VAR       )  [ A =   +   ] : ";SX$
5022  HTAB 20: INPUT "  (VAR OR #XX)  [   = B +   ] : ";SY$
5023  HTAB 20: INPUT "  (VAR OR #XX)  [   =   + C ] : ";SZ$
5024 SS$ = SX$: GOSUB 400:CC$ =  STR$ (IX):CC$(1) = "CLC":CC$(4) = "STA " + CC$
5025 SS$ = SY$: GOSUB 400: IF T = 1 THEN DD$ =  STR$ (V):CC$(3) = "ADC #" + DD$: GOTO 5027
5026 DD$ =  STR$ (IX):CC$(3) = "ADC " + DD$
5027 SS$ = SZ$: GOSUB 400: IF T = 1 THEN EE$ =  STR$ (V):CC$(2) = "LDA #" + EE$: GOTO 5029
5028 EE$ =  STR$ (IX):CC$(2) = "LDA " + EE$
5029 A = 4: GOTO 300


5030  HTAB 16: PRINT "8 BIT SUBTRACTION---[ A = B - C ]--"
5031  HTAB 20: INPUT "  (VAR       )  [ A =   -   ] : ";SX$
5032  HTAB 20: INPUT "  (VAR OR #XX)  [   = B -   ] : ";SY$
5033  HTAB 20: INPUT "  (VAR OR #XX)  [   =   - C ] : ";SZ$
5034 SS$ = SX$: GOSUB 400:CC$ =  STR$ (IX):CC$(1) = "SEC":CC$(4) = "STA " + CC$
5035 SS$ = SY$: GOSUB 400: IF T = 1 THEN DD$ =  STR$ (V):CC$(2) = "LDA #" + DD$: GOTO 5037
5036 DD$ =  STR$ (IX):CC$(2) = "LDA " + DD$
5037 SS$ = SZ$: GOSUB 400: IF T = 1 THEN EE$ =  STR$ (V):CC$(3) = "SBC #" + EE$: GOTO 5039
5038 EE$ =  STR$ (IX):CC$(3) = "SBC " + EE$
5039 A = 4: GOTO 300


5040  HTAB 16: PRINT "8 BIT MULTIPLICATION---[ A = A * B ]--"
5041  HTAB 20: INPUT "     (VAR       )  [___= B * C ] : ";SX$
5042  HTAB 20: INPUT "     (VAR OR #XX)  [ A =___* C ] : ";SY$
5043  HTAB 20: INPUT "     (VAR OR #XX)  [ A = B *___] : ";SZ$
5044  SS$ = SX$: GOSUB 400:CC$ =  STR$ (IX):DD$ =  STR$ (IY)
5045  CC$(3) = "COMMAND":CC$(4) = "GOSUB":CC$(5) = "LINE.8BITMULT":CC$(6) = "STX " + CC$:CC$(7) = "STA " + DD$
5046  SS$ = SY$: GOSUB 400: IF T = 1 THEN EE$ =  STR$ (V):CC$(1) = "LDX #" + EE$: GOTO 5048
5047  EE$ =  STR$ (IX):CC$(1) = "LDX " + EE$
5048  SS$ = SZ$: GOSUB 400: IF T = 1 THEN FF$ =  STR$ (V):CC$(2) = "LDA #" + FF$: GOTO 5050
5049 FF$ =  STR$ (IX):CC$(2) = "LDA " + FF$
5050 A = 7:ZP$ = ZA$:ZA$ = CC$(5): GOSUB 350:ZA$ = ZP$: GOTO 300


5060  HTAB 16: PRINT "8 BIT DIVISION      ---[ A = A * B ]--"
5061  HTAB 20: INPUT "     (VAR       )  [___= B / C ] : ";SX$
5062  HTAB 20: INPUT "     (VAR OR #XX)  [ A =___/ C ] : ";SY$
5063  HTAB 20: INPUT "     (VAR OR #XX)  [ A = B /___] : ";SZ$
5064  SS$ = SX$: GOSUB 400:CC$ =  STR$ (IX):DD$ =  STR$ (IY):CC$(1) = "LDA #0":CC$(2) = "STA " + DD$
5065  SS$ = SY$: GOSUB 400: IF T = 1 THEN EE$ =  STR$ (V):CC$(3) = "LDX #" + EE$: GOTO 5067
5066 EE$ =  STR$ (IX):CC$(3) = "LDX " + EE$
5067 SS$ = SZ$: GOSUB 400: IF T = 1 THEN FF$ =  STR$ (V):CC$(4) = "LDY #" + FF$: GOTO 5069
5068 FF$ =  STR$ (IX):CC$(4) = "LDY " + FF$
5069 CC$(5) = "COMMAND":CC$(6) = "GOSUB":CC$(7) = "LINE.8BITDIV"
5070 CC$(8) = "LDA 30004":CC$(9) = "STA " + CC$:A = 9:ZP$ = ZA$:ZA$ = CC$(7): GOSUB 350:ZA$ = ZP$: GOTO 300


REM----------------SPECIAL 8 BIT QUICKIES
5100 HTAB 5: PRINT "(* 8BIT) QUICKIES...."
5101 HTAB 5: PRINT "  1.  INCREASE (VARIABLE + 1)"
5102 HTAB 5: PRINT "  2.  DECREASE (VARIABLE - 1)"
5103 HTAB 5: PRINT "  3.  MULTIPLY (VARIABLE * 2)"
5104 HTAB 5: PRINT "  4.  DIVIDE   (VARIABLE / 2)"
5105 PRINT : HTAB 15: INPUT "  (1-4): ";DJ$: GOSUB 600
5106 PRINT:ON D GOTO 5130,5140,5120,5110:GOTO 1000

5110 HTAB 20: INPUT "  (VAR)  [ A = A / 2  ] : ";SX$
5111 SS$ = SX$: GOSUB 400:CC$ =  STR$ (IX):CC$(1) = "LSR " + CC$:A = 1: GOTO 300
 
5120 HTAB 20: INPUT "  (VAR)  [ A = A * 2  ] : ";SX$
5121 SS$ = SX$: GOSUB 400:CC$ =  STR$ (IX):CC$(1) = "ASL " + CC$:A = 1: GOTO 300

5130  HTAB 20: PRINT "(VAR       )  [ INCREASE 8BIT VAR+1 ]";: INPUT ": ";SS$
5131  GOSUB 400:EE$ =  STR$ (IX):CC$(1) = "INC " + EE$:A = 1: GOTO 300

5140  HTAB 20: PRINT "(VAR       )  [ DECREASE 8 BIT VAR -1 ]";: INPUT ": ";SS$
5141  GOSUB 400:EE$ =  STR$ (IX):CC$(1) = "DEC " + EE$:A = 1: GOTO 300




REM----------------IF 8BIT SUBSTRUCTURE
5200  PRINT : HTAB 5: PRINT "IF SUBSTRUCTURE (*8BIT)
5201  HTAB 5: PRINT "  1.  IF A  =  B"
5202  HTAB 5: PRINT "  2.  IF A  >  B"
5203  HTAB 5: PRINT "  3.  IF A  <  B"
5204  PRINT : HTAB 10: INPUT "  (1-3): ";DJ$: GOSUB 600
5205  PRINT :D$ = "=><":D$ =  MID$ (D$,D,1)
5206  HTAB 5: PRINT "(VAR       )  [ IF ___ ";D$;"   YY THEN...  ";: INPUT ": ";SF$
5207  HTAB 5: PRINT "(VAR OR #XX)  [ IF  XX ";D$;"  ___ THEN...  ";: INPUT ": ";SG$
5208  PRINT : HTAB 41: PRINT "-->   IF ";SF$;" ";D$;" ";SG$;"  THEN...":
5209  ON D GOTO 5210,5230,5220:GOTO 1000


5210 SS$ = SF$: GOSUB 400:EE$ =  STR$ (IX):CC$(1) = "LDA " + EE$:CC$(3) = "BEQ 3"
5211 SS$ = SG$: GOSUB 400: IF T = 1 THEN  GOTO 5213
5212 GG$ =  STR$ (IX):CC$(2) = "CMP " + GG$: GOTO 5215
5213 H = V: GOSUB 700:GG$ =  STR$ (HX(2)):CC$(2) = "CMP #" + GG$
5215 CC$(4) = "COMMAND":CC$(5) = "NEXT":CC$(6) = ZA$:A = 6: GOTO 300



5220 SS$ = SF$: GOSUB 400:EE$ =  STR$ (IX):CC$(1) = "LDA " + EE$
5221 SS$ = SG$: GOSUB 400: IF T = 1 GOTO 5223
5222 GG$ =  STR$ (IX):CC$(2) = "CMP " + GG$:GOTO 5225
5223 H = V: GOSUB 600:GG$ =  STR$ (H):CC$(2) = "CMP #" + GG$:GOTO 5225

5225 CC$(3)="BCC 3":CC$(4)="COMMAND":CC$(5)="NEXT":CC$(6)=ZA$:A=6:GOTO 300



5230  SS$ = SF$: GOSUB 400:EE$ =  STR$ (IX)
5231  SS$ = SG$: GOSUB 400: IF T = 1 GOTO 5233
5232  GG$ =  STR$ (IX):CC$(1) = "LDA " + GG$:GOTO 5234
5233  H = V: GOSUB 600:GG$ =  STR$ (H):CC$(1) = "LDA #" + GG$
5234  CC$(2) = "CMP " + EE$:GOTO 5225
5235 CC$(3)="BEQ 2":CC$(4) = "BCC 3":CC$(5) = "COMMAND":CC$(6) = "NEXT":CC$(7) = ZA$:A = 7: GOTO 300


REM----------------PADDLE CODE TO VARIABLE
5300  PRINT : HTAB 5: PRINT "PADDLE"
5301  HTAB 5: PRINT "  1.  A = PDL ( LEFT / RIGHT )"
5302  HTAB 5: PRINT "  2.  A = PDL ( UP / DOWN )"
5303  PRINT : HTAB 10: INPUT "  (1-2): ";DJ$: GOSUB 600
5304  ON D GOTO 5305,5305:GOTO 1000

5305 D=D-1:CC$=STR$(D):CC$(1)="LDX #"+CC$:CC$(2)="JSR 64286":CC$(3)="STY "
5306 HTAB 20: PRINT "     (VAR)  [ ___ = PDL( ";CC$; ") ]";:INPUT ": ";SZ$
5307 SS$=SZ$:GOSUB 400:CC$=STR$(IX):CC$(3)=CC$(3)+CC$:A=3:GOTO 300


REM----------------WAIT A PERIOD OF TIME
5310 PRINT:HTAB 5:PRINT "WAIT PERIOD"
5311 HTAB 5:INPUT "  HOW LONG IN 1/10 SECONDS (0-255): ";SS$
5312 GOSUB 400:CC$=STR$(V)
5313 CC$(1)="LDX #"+CC$:CC$(2)="LDA #198":CC$(3)="JSR 64680"
5314 CC$(4)="DEX":CC$(5)="BNE -8"
5315 A=5:GOTO 300

REM------------ASSEMBLY ENTRY MODE V2
6000 PRINT:HTAB 5:PRINT "ASSEMBLY ENTRY":CC=1
6001 HTAB 8:PRINT "ASM: ";:CALL -657
6002 CC$="": FOR IE=512 TO 767: IF PEEK(IE) <> 141 THEN CC$=CC$+CHR$(PEEK(IE)-128):NEXT IE
6003 V=LEN(CC$):IF V=0 GOTO 6001
6004 IF CC$="END" GOTO 6007
6005 IF CC$="CANCEL" GOTO 6008

6006 CC$(CC)=CC$:CC=CC+1:GOTO 6001
6007 CC=CC-1:A=CC:HTAB 44: PRINT "--> MANUAL ASSEMBLY CODE":GOTO 300
6008 PRINT:PRINT " *ASSEMBLY CODE CANCELLED":PRINT:GOTO 1000


REM------------VARIABLE LOOKUP ADDRESS V1
6010 PRINT:HTAB 5:PRINT "LOOKUP ADDRESS OF VARIABLE"
6011 HTAB 8:INPUT "VAR: ";SS$:GOSUB 400:PRINT
6012 HTAB 8:PRINT "VAR [ ";SS$;" ] @: ";IX;" - ";IY;" - ";IZ
6013 IF FD=1 THEN FD=0:GOTO
6014 GOTO 1000


REM----------------LET 24BIT SUBSTRUCTURE
7000  PRINT:HTAB 5: PRINT "===== LET 24-BIT MATH EQUATIONS =========" 
7001  HTAB 5: PRINT "1. EQUALS           --[ A = B ]--"
7002  HTAB 5: PRINT "2. ADDITION        [ A =  B +  C ]"
7003  HTAB 5: PRINT "3. SUBTRACTION     [ A =  B -  C ]"
7004  HTAB 5: PRINT "4. SPECIAL   ** [ 24BIT QUICKIES ] **"
7008  PRINT : HTAB 20: INPUT "  (1-4): ";DJ$: GOSUB 600
7009  PRINT : ON D GOTO 7100,7200,7300,7400:GOTO 1000


7100  HTAB 20: PRINT "24 BIT EQUALS --[ A = B ]--"
7101  HTAB 20: INPUT "  (VAR       )  [ A =   ] : ";SX$
7102  HTAB 20: INPUT "  (VAR OR #XX)  [   = B ] : ";SY$


7103 SS$ = SX$: GOSUB 400:CC$ =  STR$ (IX):DD$ =  STR$ (IY):EE$=STR$(IZ)
7104 CC$(2) = "STA " + CC$:CC$(4)="STA "+DD$:CC$(6)="STA "+EE$
7105 SS$=SY$:GOSUB 400:IF T=1 GOTO 7110
7106 EE$=STR$(IX):CC$(1)="LDA "+EE$:FF$=STR$(IY):CC$(3)="LDA "+FF$
7108 GG$=STR$(IZ):CC$(5)="LDA "+GG$
7109 A=6:PRINT : HTAB 44: PRINT "--> [ ";SX$;" = ";SY$;" ] <--": GOTO 300
7110 GG=INT(V/(256*256)):CC$(5)="LDA #"+STR$(GG):H=V-(GG*256*256):GOSUB 700:EE$ =  STR$ (HX(2))
7111 FF$ =  STR$ (HX(1)):CC$(1) = "LDA #" + EE$:CC$(3) = "LDA #" + FF$:GOTO 7109



7200  HTAB 20: PRINT "24-BIT ADDITION:   --[ A = B + C ]--"
7201  HTAB 27: INPUT "(VAR       )  [ A =   +   ] : ";SX$
7202  HTAB 27: INPUT "(VAR OR #XX)  [   = B +   ] : ";SY$
7203  HTAB 27: INPUT "(VAR OR #XX)  [   =   + C ] : ";SZ$

7204 SS$=SX$:GOSUB 400:EE$=STR$(IX):FF$=STR$(IY):GG$=STR$(IZ)
7205 CC$(1)="CLC":CC$(4)="STA "+EE$:CC$(7)="STA "+FF$:CC$(10)="STA "+GG$

7206 SS$=SY$:GOSUB 400:IF T=1 GOTO 7220
7207 HH$=STR$(IX):II$=STR$(IY):JJ$=STR$(IZ)
7208 CC$(2)="LDA "+HH$:CC$(5)="LDA "+II$:CC$(8)="LDA "+JJ$

7209 SS$=SZ$:GOSUB 400:IF T=1 GOTO 7230
7210 KK$=STR$(IX):LL$=STR$(IY):MM$=STR$(IZ)
7211 CC$(3)="ADC "+KK$:CC$(6)="ADC "+LL$:CC$(9)="ADC "+MM$
7214 A=10:PRINT : HTAB 44: PRINT "--> [ ";SX$;" = ";SY$;" + ";SZ$;" ] <--": GOTO 300

7220 GG=INT(V/(256*256)):H=V-(GG*256*256):GOSUB 700
7221 CC$(8)="LDA #"+STR$(GG):H=V-(GG*256*256):GOSUB 700
7222 CC$(2) ="LDA #"+STR$ (HX(2)):CC$(5)="LDA #"+STR$(HX(1)):GOTO 7209

7230 GG=INT(V/(256*256)):H=V-(GG*256*256):GOSUB 700
7231 CC$(9)="ADC #"+STR$(GG):H=V-(GG*256*256):GOSUB 700
7232 CC$(3) ="ADC #"+STR$ (HX(2)):CC$(6)="ADC #"+STR$(HX(1)):GOTO 7214


7300  HTAB 17: PRINT "24-BIT SUBTRACTION:   --[ A = B - C ]--"
7301  HTAB 27: INPUT "(VAR       )  [ A =   -   ] : ";SX$
7302  HTAB 27: INPUT "(VAR OR #XX)  [   = B -   ] : ";SY$
7303  HTAB 27: INPUT "(VAR OR #XX)  [   =   - C ] : ";SZ$

7304 SS$=SX$:GOSUB 400:EE$=STR$(IX):FF$=STR$(IY):GG$=STR$(IZ)
7305 CC$(1)="SEC":CC$(4)="STA "+EE$:CC$(7)="STA "+FF$:CC$(10)="STA "+GG$

7306 SS$=SY$:GOSUB 400:IF T=1 GOTO 7320
7307 HH$=STR$(IX):II$=STR$(IY):JJ$=STR$(IZ)
7308 CC$(2)="LDA "+HH$:CC$(5)="LDA "+II$:CC$(8)="LDA "+JJ$

7309 SS$=SZ$:GOSUB 400:IF T=1 GOTO 7330
7310 KK$=STR$(IX):LL$=STR$(IY):MM$=STR$(IZ)
7311 CC$(3)="SBC "+KK$:CC$(6)="SBC "+LL$:CC$(9)="SBC "+MM$
7314 A=10:PRINT : HTAB 44: PRINT "--> [ ";SX$;" = ";SY$;" - ";SZ$;" ] <--": GOTO 300

7320 GG=INT(V/(256*256)):H=V-(GG*256*256):GOSUB 700
7321 CC$(8)="LDA #"+STR$(GG):H=V-(GG*256*256):GOSUB 700
7322 CC$(2) ="LDA #"+STR$ (HX(2)):CC$(5)="LDA #"+STR$(HX(1)):GOTO 7309

7330 GG=INT(V/(256*256)):H=V-(GG*256*256):GOSUB 700
7331 CC$(9)="SBC #"+STR$(GG):H=V-(GG*256*256):GOSUB 700
7332 CC$(3) ="SBC #"+STR$ (HX(2)):CC$(6)="SBC #"+STR$(HX(1)):GOTO 7314


REM----------------LET 24BIT QUICKIES
7400  HTAB 5: PRINT "(* 24BIT) QUICKIES...."
7401  HTAB 5: PRINT "  1.  INCREASE (VARIABLE + 1)"
7402  HTAB 5: PRINT "  2.  DECREASE (VARIABLE - 1)"
7403  HTAB 5: PRINT "  3.  MULTIPLY (VARIABLE * 2)"
7405  HTAB 5: PRINT "  4.  DIVIDE   (VARIABLE / 2)"
7406  PRINT : HTAB 15: INPUT "  (1-4): ";DJ$: GOSUB 600
7407   PRINT:ON D GOTO 7440,7450,7420,7410:GOTO 1000

7410  HTAB 20: INPUT "  (VAR)  [ A = A / 2  ] : ";SX$
7411  SS$ = SX$: GOSUB 400:CC$ =  STR$ (IX):DD$ =  STR$ (IY):EE$=STR$(IZ)
7412 CC$(1)="LSR "+EE$:CC$(2) = "ROR " + DD$:CC$(3) = "ROR " + CC$:A = 3: GOTO 300

7420 HTAB 20: INPUT "  (VAR)  [ A = A * 2  ] : ";SX$
7421 SS$ = SX$: GOSUB 400:CC$ =  STR$ (IX):DD$ =  STR$ (IY):EE$=STR$(IZ)
7422 CC$(1) = "ASL " + CC$:CC$(2) = "ROL " + DD$:CC$(3)="ROL "+EE$:A = 3: GOTO 300

7440  HTAB 20: PRINT "(VAR       )  [ INCREASE 24BIT VAR+1 ]";: INPUT ": ";SS$
7441  GOSUB 400:EE$ =  STR$ (IX):FF$ =  STR$ (IY):GG$=STR$(IZ)
7442  CC$(1) = "INC " + EE$:CC$(2) = "BNE 8":CC$(3) = "INC " + FF$
7443  CC$(4)="BNE 3":CC$(5)="INC "+GG$:A=5:GOTO 300

7450  HTAB 20: PRINT "(VAR       )  [ DECREASE 24 BIT VAR -1 ]";: INPUT ": ";SS$
7451  GOSUB 400:EE$ =  STR$ (IX):FF$ =  STR$ (IY):GG$=STR$(IZ)
7452 CC$(1)="LDA "+EE$:CC$(2)="BNE 11":CC$(3)="LDA "+FF$:CC$(4)="BNE 3"
7453 CC$(5)="DEC "+GG$:CC$(6)="DEC "+FF$:CC$(7)="DEC "+EE$:A=7:GOTO 300






REM----------------IF 24BIT SUBSTRUCTURE
7500  PRINT : HTAB 5: PRINT "IF SUBSTRUCTURE (*24BIT)
7501  HTAB 5: PRINT "  1.  IF A  =  B"
7502  HTAB 5: PRINT "  2.  IF A  >  B"
7503  HTAB 5: PRINT "  3.  IF A  <  B"
7504  HTAB 10: INPUT "  (1-3): ";DJ$: GOSUB 600:IF D>3 OR D<1 GOTO 1000

7505  PRINT :D$ = "=><":D$ =  MID$ (D$,D,1)
7506  HTAB 5: PRINT "(VAR       )  [ IF ___ ";D$;"   YY THEN...  ";: INPUT ": ";SF$
7507  HTAB 5: PRINT "(VAR OR #XX)  [ IF  XX ";D$;"  ___ THEN...  ";: INPUT ": ";SG$
7508  PRINT : HTAB 41: PRINT "-->   IF ";SF$;" ";D$;" ";SG$;"  THEN..."
7509  ON D GOTO 7510,7700,7600


REM--------IF A=B 24BIT BUGFIXED 7.10.18
7510 SS$=SF$:GOSUB 400:EE$=STR$(IX):FF$=STR$(IY):GG$=STR$(IZ)
7511 CC$(1)="LDA "+GG$:CC$(4)="LDA "+FF$:CC$(7)="LDA "+EE$
7513 CC$(10)="COMMAND":CC$(11)="NEXT":CC$(12)=ZA$
7514 CC$(3)="BNE 16":CC$(6)="BNE 8":CC$(9)="BEQ 3"

7515 SS$=SG$:GOSUB 400:IF T=1 GOTO 7520
7516 HH$=STR$(IX):II$=STR$(IY):JJ$=STR$(IZ)
7517 CC$(2)="CMP "+JJ$:CC$(5)="CMP "+II$:CC$(8)="CMP "+HH$
7519 A=12:GOTO 300

7520 GG=INT(V/(256*256)):H=V-(GG*256*256):CC$(2)="CMP #"+STR$(GG):H=V-(GG*256*256):GOSUB 700
7521 CC$(5)="CMP #"+STR$(HX(1)):CC$(8)="CMP #"+STR$(HX(2))
7522 CC$(3)="BNE 14":CC$(6)="BNE 7":GOTO 7519

7520 GG=INT(V/(256*256)):H=V-(GG*256*256):CC$(2)="CMP #"+STR$(GG):H=V-(GG*256*256):GOSUB 700
7521 CC$(5)="CMP #"+STR$(HX(1)):CC$(8)="CMP #"+STR$(HX(2))
7522 CC$(3)="BNE 14":CC$(6)="BNE 7":GOTO 7519




REM---- IF A<B 24BIT
7600 SS$=SG$:GOSUB 400:IF T=1 THEN GOTO 7610

7601 SS$=SF$:GOSUB 400:EE$=STR$(IX):FF$=STR$(IY):GG$=STR$(IZ)
7602 CC$(2)="CMP "+GG$:CC$(6)="CMP "+FF$:CC$(10)="CMP "+EE$
7603 CC$(13)="COMMAND":CC$(14)="NEXT":CC$(15)=ZA$
7604 CC$(3)="BCC 22":CC$(4)="BNE 23":CC$(7)="BCC 12":CC$(8)="BNE 13"

7605 SS$=SG$:GOSUB 400
7606 HH$=STR$(IX):II$=STR$(IY):JJ$=STR$(IZ)
7607 CC$(1)="LDA "+JJ$:CC$(5)="LDA "+II$:CC$(9)="LDA "+HH$
7608 CC$(11)="BEQ 2":CC$(12)="BCS 3":CC$(13)="COMMAND":CC$(14)="NEXT":CC$(15)=ZA$:A=15:GOTO 300


7610 GG=INT(V/(256*256)):H=V-(GG*256*256):CC$(1)="LDA #"+STR$(GG):H=V-(GG*256*256):GOSUB 700
7611 CC$(9)="LDA #"+STR$(HX(2)):CC$(5)="LDA #"+STR$(HX(1))
7612 CC$(3)="BCC 20":CC$(4)="BNE 21":CC$(7)="BCC 11":CC$(8)="BNE 12"
7613 SS$=SF$:GOSUB 400:EE$=STR$(IX):FF$=STR$(IY):GG$=STR$(IZ)
7614 CC$(2)="CMP "+GG$:CC$(6)="CMP "+FF$:CC$(10)="CMP "+EE$:GOTO 7608





REM IF A>B 24BIT
 REM IF A>B 24BIT
 7700 SS$ = SG$: GOSUB 400: IF T = 1 THEN GOTO 7710
 7701  SS$=SG$:GOSUB 400

 7702 EE$ =  STR$ (IX):FF$ =  STR$ (IY):GG$ =  STR$ (IZ)
 7703 CC$(2) = "CMP " + GG$:CC$(6) = "CMP " + FF$:CC$(10) = "CMP " + EE$
 7705 CC$(3) = "BCC 22":CC$(4) = "BNE 23":CC$(7) = "BCC 12":CC$(8) = "BNE 13"
 7706 SS$ = SF$: GOSUB 400
 7707 HH$ =  STR$ (IX):II$ =  STR$ (IY):JJ$ =  STR$ (IZ)
 7709 CC$(1) = "LDA " + JJ$:CC$(5) = "LDA " + II$:CC$(9) = "LDA " + HH$: GOTO 7716
 

7710 GG =  INT (V / (256 * 256)):H = V - (GG * 256 * 256):CC$(2) = "CMP #" +  STR$ (GG):H = V - (GG * 256 * 256): GOSUB 700
7711 CC$(6) = "CMP #" +  STR$ (HX(1)):CC$(10) = "CMP #" +  STR$ (HX(2))
7712 SS$=SF$:GOSUB 400:EE$ =  STR$ (IX):FF$ =  STR$ (IY):GG$ =  STR$ (IZ)
7713 CC$(1) = "LDA " + GG$:CC$(5) = "LDA " + FF$:CC$(9) = "LDA " + EE$
7715 CC$(3) = "BCC 20":CC$(4) = "BNE 21":CC$(7) = "BCC 11":CC$(8) = "BNE 12"

7716 CC$(13) = "COMMAND":CC$(14) = "NEXT":CC$(15) = ZA$:CC$(11)="BEQ 2":CC$(12) = "BCS 3":A=15:GOTO 300




7900 REM 'IF/LET8 CHANGER
7901 LK=8:GOTO 7915
7905 REM 'IF/LET16 CHANGER
7906 LK=16:GOTO 7915
7910 REM 'IF/LET24 CHANGER
7911 LK=24:GOTO 7915

7915 HTAB 10:PRINT "**CHANGED TO LET";LK:GOTO 1000

7920 REM' LET DIRECTOR
7921 IF LK=8 GOTO 5000
7922 IF LK=16 GOTO 3300
7923 IF LK=24 GOTO 7000
7924 PRINT "ERR":STOP

7925 REM 'IF DIRECTOR
7926 IF LK=8 GOTO 5200
7927 IF LK=16 GOTO 3200
7928 IF LK=24 GOTO 7500
7929 GOTO 7924

REM------------FOR/NEXT STEP CODE V.167
8000 HTAB 10: INPUT "STEP VALUE #: ";DJ$:D =  VAL (DJ$):D = D - 1: IF D < 1 THEN  GOTO 1000
8001 C=0:FOR A=1 TO D
8002 C=C+1:CC$(C)="LDX 30007":C=C+1:CC$(C)="LDA 30006,X":C=C+1:CC$(C)="BNE 8":C=C+1:CC$(C)="LDA 30007,X"
8003 C=C+1:CC$(C)="BEQ 10":C=C+1:CC$(C)="DEC 30007,X":C=C+1:CC$(C)="DEC 30006,X":C=C+1:CC$(C)="LDA #0"
8004 C=C+1:CC$(C)="BEQ 1":C=C+1:CC$(C)="RTS":NEXT A
8005 A=C:GOTO 300


REM----------------ON GOTO CODE v1.79
8100 HTAB 20:PRINT " ON _x_ GOTO"
8101 HTAB 25:PRINT "( VAR      ): ";:INPUT SS$
8102 GOSUB 400:EE$=STR$(IX):CC$(1)="LDA "+EE$:AL=1:AJ=6
8103 HTAB 25:INPUT "(      #XX )  [VALUE]: ";AK$:AK=VAL(AK$):IF AK=0 GOTO 8109
8104 AL=AL+1:CC$(AL)="CMP #"+STR$(AK)
8105 AL=AL+1:CC$(AL)="BNE 3"
8106 AL=AL+1:CC$(AL)="COMMAND":AL=AL+1:CC$(AL)="GOTO"
8107 AL=AL+1:HTAB 35:INPUT "GOTO LINE #: ";CC$:CC$(AL)="LINE."+CC$
8108 FOR A=AL-AJ TO AL:HTAB 60:PRINT CC$(A):NEXT:AJ=4:GOTO 8103
8109 A=AL:GOTO 300




